This invention generally relates to digital data processing systems. More specifically it relates the interconnection of various units in such a system and the transfer of data among those units.
A digital data processing system comprises three basic elements; namely, a memory element, an input-output element and a processor element. The memory element stores information in addressable storage locations. This information includes data and instructions for processing the data. The processor element transfers information to and from the memory element, interprets the incoming information as either data or instructions and processes the data in accordance with the instructions. The input-output elements also communicate with the memory element in order to transfer input information to the system and to obtain processed information from it.
Over the years many different types of digital data processing systems have been developed. However, this development has been directed toward evolving new processor elements with more efficient architecture, larger and faster memory elements and more sophisticated input-output elements. There has been little change in the technology involved in transferring information among the various elements in the data processing system. In fact, all the data processing systems of which we are aware can be classified by the timing method that they use. There are only two timing categories: synchronous and asynchronous timing.
Digital data processing systems that utilize synchronous timing usually include a master clock that controls all operations in all elements. This master clock generates timing signals that control operations in the processor element and also in the memory and input-output elements that connect to an interconnecting bus. As all the elements in the system are synchronized to the master clock, the master clock frequency must be set to operate in a way that is compatible with the slowest element in the system. The transfer rates between elements impose ultimate limitations on the speeds with which the faster elements can operate. Thus a slow transfer rate slows the entire system so that the system runs below the theoretical efficiency of many of its component units.
Other digital data processing systems utilize asynchronous timing over their interconnections. With asynchronous timing each element is free to operate at its most efficient rate. Typically two elements communicate with each other when one element initiates a data transfer over an interconnecting bus. Then the one element controls the bus to the exclusion of all third elements in the system until the other element acknowledges that the requested transfer has been completed. Systems using asynchronous timing tend to be somewhat faster than their counterpart synchronous systems because they can make some transfers at a greater rate than the slowest element in the system, while maintaining the ability to communicate more slowly with the slower elements. However, asynchronous transfers do have drawbacks in some applications. In some asynchronous systems, once a transfer operation has been initiated, the entire bus is unavailable to any elements other than the two involved in the transfer until that transfer is completed. Thus transfers involving slower elements hold up operation of the faster elements and reduce their efficiencies below their theoretical levels.
Despite the drawbacks of both synchronous and asynchronous transfers, most digital data processing systems still are built solely around either one or the other, but not both timing schemes. The selection of one over the other apparently depends upon the predicted applications for the digital data processing system. Thus, in some applications unacceptable operating speeds may be encountered while in others the speeds are acceptable.
There is described in this application a digital data processing system in which a synchronous bus interconnects the individual elements. Unlike prior systems, however, this system does not extend the timing control exerted on the bus throughout all the elements. Each element operates at its own maximum speed while it is not connected to the bus. At the time that an element is to make a transfer, it prepares to make the transfer in synchronism with the bus. While this system greatly increases the overall speed of communications, by itself this does not increase the overall transfer rate to the maximum potential rate.
Therefore, it is an object of this invention to provide a data processing system in which the elements are enabled to exchange information at very fast rates.
Another object of this invention is to provide a data processing system in which each element is enabled to operate at its most efficient speed without unduly delaying other information exchanges between elements.
Still another object of this invention is to provide a data processing system in which each element is enabled to operate at its most efficient speed during a data exchange with another data element without having to inhibit information exchanges with other elements completely.